home *** CD-ROM | disk | FTP | other *** search
Text File | 1997-04-10 | 2.8 KB | 98 lines | [TEXT/CWIE] |
- unit MySystemGlobals;
-
- interface
-
- uses
- Types, Quickdraw, Files,
- MyVersionResource;
-
- var { set up by InitSystemGlobals }
- system7: boolean;
- system_version: longint;
- has_AppleEvents: boolean;
- has_FindFolder: boolean;
- has_AliasManager: boolean;
- has_NewStandardFile: boolean;
- has_HelpManager: boolean;
- has_ColourQuickDraw: boolean;
- has_LaunchControl: Boolean;
- has_VirtualMemory: Boolean;
- app_resfile: integer;
- app_fs: FSSpec;
- in_foreground: boolean;
- version: versionRecord;
-
- procedure InitSystemGlobals;
- function RefNumToFSSpec(rn:integer; var fs:FSSpec):OSErr;
- procedure SetInForeground (fore: boolean);
- function InForeground: boolean;
-
- implementation
-
- uses
- OSUtils, Resources, GestaltEqu, Processes;
- {
- function TPbtst(value:longint; bit:integer):Boolean;
- begin
- TPbtst := btst(value, bit);
- end;
- }
- procedure SetInForeground (fore: boolean);
- begin
- in_foreground := fore;
- end;
-
- function InForeground: boolean;
- var
- gv: longint;
- ourpsn, frontpsn: ProcessSerialNumber;
- front: boolean;
- begin
- if (Gestalt(gestaltOSAttr, gv) = noErr) & (btst(gv, gestaltLaunchControl)) then begin
- if (GetCurrentProcess(ourpsn) = noErr) & (GetFrontProcess(frontpsn) = noErr) then begin
- if SameProcess(ourpsn, frontpsn, front) = noErr then begin
- in_foreground := front;
- end;
- end;
- end;
- InForeground := in_foreground;
- end;
-
- function RefNumToFSSpec(rn:integer; var fs:FSSpec):OSErr;
- var
- pb: FCBPBRec;
- begin
- pb.ioNamePtr := @fs.name;
- pb.ioVRefNum := 0;
- pb.ioRefNum := rn;
- pb.ioFCBIndx := 0;
- RefNumToFSSpec := PBGetFCBInfoSync(@pb);
- fs.vRefNum := pb.ioFCBVRefNum;
- fs.parID := pb.ioFCBParID;
- end;
-
- procedure InitSystemGlobals;
- var
- oe: OSErr;
- gv: longint;
- sysenv: SysEnvRec;
- begin
- has_ColourQuickDraw := (SysEnvirons(1, sysenv) = noErr) & sysenv.hasColorQD; { Gestalt has a bug that causes hasColourQD to always be set }
- if (Gestalt(gestaltSystemVersion, system_version) <> noErr) then begin
- system_version := $0600;
- end;
- system7 := system_version >= $0700;
- app_resfile := CurResFile;
- oe := RefNumToFSSpec(app_resfile, app_fs);
- has_AppleEvents := (Gestalt(gestaltAppleEventsAttr, gv) = noErr) & (btst(gv, gestaltAppleEventsPresent));
- has_FindFolder := (Gestalt(gestaltFindFolderAttr, gv) = noErr) & (btst(gv, gestaltFindFolderPresent));
- has_NewStandardFile := (Gestalt(gestaltStandardFileAttr, gv) = noErr) & (btst(gv, gestaltStandardFile58));
- has_HelpManager := (Gestalt(gestaltHelpMgrAttr, gv) = noErr) & (btst(gv, gestaltHelpMgrPresent));
- has_AliasManager := (Gestalt(gestaltAliasMgrAttr, gv) = noErr) & (btst(gv, gestaltAliasMgrPresent));
- has_LaunchControl := (Gestalt(gestaltOSAttr, gv) = noErr) & (btst(gv, gestaltLaunchControl));
- has_VirtualMemory := (Gestalt(gestaltVMAttr, gv) = noErr) & (btst(gv, gestaltVMPresent));
- in_foreground := true;
- GetVersion(app_resfile, version);
- end;
-
- end.